<?php
namespace app\common\job;

use app\common\model\CouponModel;
use think\queue\Job;

/**
 * 优惠券异步操作
 */
class CouponAutoOper
{

    /**
     * 未使用的优惠券过期处理
     */
    public function UnusedCouponOverdue(Job $job, $data)
    {
        try {
            // 重新查询订单
            \think\Log::write('queue-' . get_class() . '-NoSendCloseOrder' . '：执行成功');
            $coupon = CouponModel::get($data['coupon_id']);

            if ($coupon) {
                \think\Db::transaction(function () use ($coupon, $data) {
                    model('app\common\model\UserCouponModel')->where(['status' => 1])->setField('status', 3);
                });
            }
            // 删除 job
            $job->delete();
        } catch (\Exception $e) {
            // 队列执行失败
            \think\Log::write('queue-' . get_class() . '-NoSendCloseOrder' . '：执行失败，错误信息：' . $e->getMessage());
        }
    }
}